/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package ClassesListas;

import ClassesUnicas.ComboBoxMultiData;
import ClassesUnicas.SubFase;
import DAO.DAOSubFase;
import DAO.MySQL.DAOSubFaseMySQL;
import java.util.ArrayList;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

/**
 * SubFases
 * 
 * Versao 1.0
 * 
 * Data Criação 30/05/2014
 *
 * @author Igor
 */
public class SubFases {
    //Atributos
    private ArrayList<SubFase> subFases;
    private DAOSubFase subFaseDAO;
    
    //Construtores
    public SubFases(){
        this.subFases = new ArrayList<SubFase>();
        this.subFaseDAO = new DAOSubFaseMySQL();
    }

    //Getters e Setters
    /**
     * @return the subFases
     */
    public ArrayList<SubFase> getSubFases() {
        return subFases;
    }

    /**
     * @param subFases the subFases to set
     */
    public void setSubFases(ArrayList<SubFase> subFases) {
        this.subFases = subFases;
    }

    /**
     * @return the subFaseDAO
     */
    public DAOSubFase getSubFaseDAO() {
        return subFaseDAO;
    }

    /**
     * @param subFaseDAO the subFaseDAO to set
     */
    public void setSubFaseDAO(DAOSubFase subFaseDAO) {
        this.subFaseDAO = subFaseDAO;
    }
    
    //Outros metodos
    /**
     * Lista, em um comboBox, as pessoas
     *
     * @param comboBox
     */
    public void listarSubFases(JComboBox comboBox) {
        DefaultComboBoxModel dtm = (DefaultComboBoxModel) comboBox.getModel();

        int i = 0;

        //Limpa a tabela
        comboBox.removeAllItems();

        comboBox.addItem(new ComboBoxMultiData(0, 0, "<Escolha um item>"));
        i = 0;
        while (i < getSubFases().size()) {
            long idFase = getSubFases().get(i).getIdFase();
            long idSubFase = getSubFases().get(i).getIdSubFase();
            String nome = idFase+"."+idSubFase+" - "+getSubFases().get(i).getIntensidade()+"%";
            comboBox.addItem(new ComboBoxMultiData(idFase, idSubFase, nome));
            i++;
        }
    }
    
    /**
     * Lista, o ArrayList de subFases, na tabela passada como parametro
     *
     * @param tabela
     */
    public void listarSubFasesPercAvancarJogo(JTable tabela) {
        DefaultTableModel dtm = (DefaultTableModel) tabela.getModel();

        String[] colunas = new String[]{"Descricao", "Pencentual para Avançar"};

        dtm = new DefaultTableModel(colunas, 0) {
            public boolean isCellEditable(int row, int col) {
                switch (col) {
                    case 0:
                        return false;
                    default:
                        return true;
                }
            }

            public Class getColumnClass(int c) {
                switch (c) {
                    case 0:
                        return String.class;
                    default:
                        return Integer.class;
                }
            }
        };

        tabela.setModel(dtm);

        tabela.getColumnModel().getColumn(0).setPreferredWidth(100);
        tabela.getColumnModel().getColumn(1).setPreferredWidth(200);

        for(int i = 0;i < getSubFases().size();i++){
            long idFase = getSubFases().get(i).getIdFase();
            long idSubFase = getSubFases().get(i).getIdSubFase();
            String nome = idFase+"."+idSubFase+" - "+getSubFases().get(i).getIntensidade()+"%";
            dtm.addRow(new Object[]{nome, 0});
        }
    }
}
